import React, { Component } from 'react'

// 引入类型包
import Pts from 'prop-types';
console.log('Pts', Pts);

// 在子组件中进行接收的父传子的属性的类型约束 2种方式
// 第一种方式: 在组件外以静态属性的形式设置类型约束
// 第二种方式: 在组件类设置静态属性 static 属性名


// 设置默认值:  2种方式
// 方式1: 在组件外设置静态属性 defaultProps 
// 方式2: 在组件内设置静态属性 static deaultProps

export default class Soncls extends Component {
    // 第二种方式:
    static propTypes = {
        nameArr: Pts.array
    }
    // 第二种方式设置默认值:
    static defaultProps = {
        nameArr: []
    }
    render() {
        console.log(this);
        return (
            <div>Soncls</div>
        )
    }
}


// 第一种方式:
// Soncls.propTypes = {
//     nameArr: Pts.string.isRequired
// }

// 设置默认值第一种方式:
// Soncls.defaultProps = {
//     nameArr: []
// }




// es5方式创建类
// function Person() {
//     this.name = '安楠' // 实例属性
//     this.age = 20  // 实例属性
// }

// Person.sex = '男'  // 静态属性

// let p = new Person() // p 为实例化对象
// console.log(Person.sex);
// console.log('p', p);

// class Person {
//     constructor() {
//         this.name = '安楠' // 实例属性
//         this.age = 18 // 实例属性
//     }
// }

// Person.sex = '男' // 静态属性
// let p1 = new Person()
// console.log(Person.sex);
// console.log('p1', p1);